home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-06-30 | 3.9 KB | 108 lines | [TEXT/CWIE] |
- // ===========================================================================
- // LAGAIconButton.h
- // ===========================================================================
- // “Apple Grayscale Appearance” compliant (almost) icon button
- // Copyright © 1996 Chrisoft (Christophe ANDRES) All rights reserved.
- //
- // You may use this source code in any application (commercial, shareware, freeware,
- // postcardware, etc), but not remove this notice (no need to acknowledge the use of
- // this class in the about box)
- // You may not sell this source code in any form. This source code may be placed on
- // publicly accessable archive sites and source code disks. It may not be placed on
- // profit archive sites and source code disks without the permission of the author,
- // Christophe ANDRES.
- //
- // This source code is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- //
- // If you make any change or improvement on this class, please send the improved/changed
- // version to : chrisoft@calva.net or Christophe ANDRES
- // 20, rue Prosper Mérimée
- // 67100 STRASBOURG
- // FRANCE
- //
- // ===========================================================================
- // LAGAIconButton.cp <- double-click + Command-D to see class implementation
- //
- // LAGAIconButton is my implementation of the “Apple Grayscale Appearance for System 7.5”
- // Icon Buttons with the exception of the pressed state. The pressed state is my own kind,
- // because I (and my customers) found it nicer than Apple's ;-)
- //
- // The button supports icon families or cicn (use 'ICN#' and 'cicn' in constructor. To
- // get the best result, the size of the button should be 5 pixels more than the icon (so for
- // a 32X32 icon, the minimum size should be 37X37)
- //
- // if mRadioBehavior is set, the Icon Button acts as a RadioButton and can be used with
- // a radio group
- //
- // This class requires AGAColors.cp to be present in your project
- //
- // Version : 1.2
- //
- // Change History (most recent first, date in US form : mm/dd/yy):
- //
- // 06/30/96 ca Public release of version 1.2
- // 06/04/96 ca Added static RegisterClass for easier class registration
- // Added guard macros in header files
- // Increased version to 1.2
- // 05/11/96 ca Increased version to 1.1
- // Added copy constructor
- // Added "on the fly" constructor
- // Added change history
- // 04/22/96 ca class made available by Christophe ANDRES <chrisoft@calva.net>
- // (version 1.0)
- //
- // To Do:
- //
-
- #ifndef _H_LAGAIconButton
- #define _H_LAGAIconButton
- #pragma once
-
- #include <LControl.h>
- #include <Icons.h>
-
- class LAGAIconButton : public LControl
- {
- public :
- enum { class_ID = '3DbT' };
- static void RegisterClass (); // <06/04/96 ca>
- static LAGAIconButton* CreateAGAIconButtonStream (LStream *inStream);
-
- LAGAIconButton ();
-
- LAGAIconButton (LStream *inStream);
-
- LAGAIconButton (const LAGAIconButton &inOriginal); // <05/11/96 ca>
-
- LAGAIconButton (const SPaneInfo &inPaneInfo, MessageT inClickedMessage, OSType inIconType, // <05/11/96 ca>
- ResIDT inIconID, Boolean inRadioButtonBehavior);
-
- virtual ~LAGAIconButton ();
-
- virtual void SetValue (Int32 inValue);
-
- protected :
- virtual void HotSpotResult (Int16 inHotSpot);
-
- virtual void HotSpotAction (Int16 inHotSpot, Boolean inCurrInside, Boolean inPrevInside);
-
- virtual void DrawSelf ();
-
- virtual void DrawGraphic (Boolean inPushed);
-
- virtual void DisableSelf () { Refresh(); };
-
- virtual void EnableSelf () { Refresh(); };
-
- virtual short GetIconID () { return(mIconID); };
-
- short mIconID;
- OSType mIconType;
- CIconHandle mIcon;
- Boolean mRadioBehavior;
- };
-
- #endif
-